<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>03js数据类型</title>
</head>
<body>
<script>
    //java中分为基本类型和引用类型
    //js中分类原始类型和引用类型
    //原始类型 string number boolean undefined null
    //引用类型 Object Number Boolean Function Array ... ...
    var a = 1;
    var b = 6.6;
    var c = '下午';
    var d = "好多个字";
    var e = true;
    var f = false;
    console.log(a, typeof a);
    console.log(b, typeof b);
    console.log(c, typeof c);
    console.log(d, typeof d);
    console.log(e, typeof e);
    console.log(f, typeof f);

    // 类型为undefined,因为js根据值推断类型，未给值所以类型为undefined
    var g;
    console.log(g, typeof g);

    // 引用类型 Object Number Boolean Function Array
    // 1)定义js对象
    let person = {}; // 定义空对象
    let obj = {
        name: '张三',
        age: 18
    };
    // 打印出来是json格式的，但是不是字符串，是js对象
    console.log(obj, typeof obj);
    console.log(obj.name, typeof obj.name);
    console.log(obj.age, typeof obj.age);

    // 给对象重新赋值
    obj.age = 19;
    console.log(obj, obj.age);

    // 如果属性存在则重新赋值，如果属性不存在则新创建属性，此处和java不一样，可以一边使用一边添加;
    obj.like = '吃冰棍';
    console.log(obj, obj.like);
    // 如果属性不存在则为undefined，属性的本质为变量，声明变量未赋值则就是undefined;
    console.log(obj.play);

    // 声明数组: (3) ['李逵', '鲁班', '后裔'] 'object',也是引用类型，类型为object
    let arr = ['李逵', '鲁班', '后裔', 1, 66.66, true];
    console.log(arr, typeof arr);
    console.log(arr[0]);
    console.log(arr[5]);
    // 访问数组不存在的下标会显示undefined
    console.log(arr[99]);


</script>
</body>
</html>














